home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / comm / mail / YamNet.lha / rexxtra12.lha / rexx / Append.rexx next >
OS/2 REXX Batch file  |  1990-03-18  |  2KB  |  73 lines

  1. /* append.rexx */
  2.  
  3. /*
  4.      Format
  5.  
  6.        APPEND [TO] <file1> <file2> [...<fileN>]
  7.  
  8.    Handles a special case of join. Appends <file2> ... <fileN> to <file1>
  9.  
  10. */
  11.  
  12. signal on failure; signal off error; signal on syntax; signal on break_c
  13. options failat 10
  14.  
  15. call addlib 'rexxextra.library',-20,-30,0
  16.  
  17. facility = 'Append'
  18. dtemplate = 'TO/A,FILES/...'
  19. template = 'TO/A,FILES/L'
  20. args. = ''
  21.  
  22. parse arg g_c
  23. do while g_c='?'
  24.   options prompt dtemplate': '  /* this template is      */
  25.   parse pull g_c        /* displayed to the user */
  26.   if g_c='?' then do
  27.     g_s=sourceline(3)
  28.     if pos('/*',g_s)=0 then break; if pos('*/',g_s)>0 then break
  29.     say
  30.     g_s=sourceline(4)
  31.     do i=5 while pos('*/',g_s)=0; say g_s; g_s=sourceline(i); end
  32.     say
  33.     end
  34.   end
  35. interpret Cparse(g_c,template,'args')
  36. if args.ERRCODE > 1 then do; say facility'-E-BADARGS,' args.ERRTEXT; exit 5; end
  37.  
  38. program = 'c:Join'
  39. temp = 't:APPEND.' || Pragma('ID')
  40.  
  41. c = args.TO
  42. do i = 1 to args.FILES.0
  43.   if ~exists(args.FILES.i) then
  44.     say facility"-W-NOTFND, can't find" args.FILES.i
  45.   else
  46.     c = c||' '||args.FILES.i
  47.   end
  48. if c = args.TO then do
  49.   say facility'-E-NOTFND, no input files found'
  50.   retcode = 10
  51.   end
  52. else do
  53.   ''program c 'AS' temp
  54.   retcode = rc
  55.   'Move' temp args.TO
  56.   retcode = max(rc,retcode)
  57.   end
  58. GetOut:
  59. exit retcode
  60.  
  61. break_c:
  62. break_d:
  63. break_e:
  64. break_f:
  65.   say facility'-E-BREAK, Control-C interrupt'; retcode = 20; signal GetOut
  66. failure:
  67.   say facility'-E-FAIL, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  68. syntax:
  69.   say facility'-E-SYNTAX, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  70. error:
  71.   say facility'-E-ERROR, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  72.  
  73.